package cn.com.dashihui.web.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.jfinal.aop.Duang;
import com.jfinal.kit.PropKit;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.upload.UploadFile;

import cn.com.dashihui.kit.CommonKit;
import cn.com.dashihui.kit.DatetimeKit;
import cn.com.dashihui.kit.DirKit;
import cn.com.dashihui.kit.UtilNumber;
import cn.com.dashihui.web.base.BaseController;
import cn.com.dashihui.web.dao.Category;
import cn.com.dashihui.web.dao.DetailsImg;
import cn.com.dashihui.web.dao.GoodsBaseImages;
import cn.com.dashihui.web.dao.GoodsEge;
import cn.com.dashihui.web.dao.GoodsEgeSpec;
import cn.com.dashihui.web.dao.GoodsSaleItem;
import cn.com.dashihui.web.dao.WxGoodsTitle;
import cn.com.dashihui.web.service.ExchangeGoodsService;


/**
 * 平台基础商品管理，基础商品可由各分公司进行复制
 */
public class ExchangeGoodsController extends BaseController {
	private ExchangeGoodsService service = Duang.duang(ExchangeGoodsService.class);

	/**
	 * 二级分类
	 */
	public void sCategoryonid(){
		String[] sCategoryonid = getParaValues("sCategoryonid");
		String str = java.lang.String.join("','", sCategoryonid);
		renderSuccess(service.finTwoCategory(str));
	}
	/**
	 * 三级分类
	 */
	public void sCategorytwid(){
		String[] sCategorytwid = getParaValues("sCategorytwid");
		String str = java.lang.String.join("','", sCategorytwid);
		renderSuccess(service.finThreeCategory(str));
	}
	/**
	 * 四级分类
	 */
	public void sCategorythid(){
		String[] sCategorythid = getParaValues("sCategorythid");
		String str = java.lang.String.join("','", sCategorythid);
		renderSuccess(service.finFourCategory(str));
	}
	/**
	 * 转到商品列表页面
	 */
	public void index() {
		List<Category> oneCategories = service.finOneCategory();
		setAttr("oneCategories", oneCategories);
		List<Category> twoCategories = service.findTwoCategory();
		setAttr("twoCategories", twoCategories);
		List<Category> threeCategories = service.findThreeCategory();
		setAttr("threeCategories", threeCategories);
		List<Category> fourCategories = service.findFourCategory();
		setAttr("fourCategories", fourCategories);
		render("index.jsp");
	}

	/**
	 * 列表页面异步请求数据
	 */
	public void page() {
		int pageNum = getParaToInt(0, 1);
		int pageSize = getParaToInt("pageSize", PropKit.getInt("constants.pageSize"));
		int sGoodId = getParaToInt("sGoodId", 0);
		String sGoodName = getPara("sGoodName");
		int sCategoryonid = getParaToInt("sCategoryonid", 0);
		int sCategorytwid = getParaToInt("sCategorytwid", 0);
		int sCategorythid = getParaToInt("sCategorythid", 0);
		int sCategoryfoid = getParaToInt("sCategoryfoid", 0);
		int state = getParaToInt("sState", 0);
		renderResult(0, service.findByPage(pageNum, pageSize, sGoodId,sGoodName, state, sCategoryonid,sCategorytwid,sCategorythid,sCategoryfoid));
	}


	/**
	 * 商品详情
	 */
	public void goodDetail() {
		int id = getParaToInt(0, 0);
		int userid=getCurrentUser().getInt("id");
		List<WxGoodsTitle> allTitle = service.findAllTitle();
		setAttr("allTitle", allTitle);
		if (id != 0) {
			Record goods = service.findGoodDetailById(id);
			String gooditem = goods.getStr("goodItem");
			if (!StrKit.isBlank(gooditem)) {
				List<Record> goodItem = service.getGoodsItem(gooditem);
				if (goodItem.size() > 0) {
					setAttr("goodItem", goodItem);
				}
			}
				List<Record> goodSpecs = service.getGoodSpec(id);
				if (goodSpecs.size() > 0) {
					setAttr("goodSpec", goodSpecs);
				}
			
			setAttr("goods", goods);
			/*String lableIds = goods.getStr("lableId");
			String[] slableIds = lableIds.split(",");
			StringBuffer sBuffer = new StringBuffer();
			for (int i = 0; i < slableIds.length; i++) {
				String lableId = slableIds[i];
				int lableid = Integer.parseInt(lableId);
				WxGoodsTitle title = service.findTitleById(lableid);
				String name = title.getStr("title");
				sBuffer.append(name+",");
			}
			setAttr("sBuffer", sBuffer);*/
			String lableId = goods.get("lableId");
			int lableid = Integer.parseInt(lableId);
			WxGoodsTitle title = service.findTitleById(lableid);
			String lableName = title.getStr("title");
			set("lableName", lableName);
		}
		
		List<Category> oneCategories = service.finOneCategory();
		setAttr("oneCategories", oneCategories);
		List<Category> twoCategories = service.findTwoCategory();
		setAttr("twoCategories", twoCategories);
		List<Category> threeCategories = service.findThreeCategory();
		setAttr("threeCategories", threeCategories);
		List<Category> fourCategories = service.findFourCategory();
		setAttr("fourCategories", fourCategories);
		setAttr("userid", userid);
		render("detail.jsp");
		
	}

	/**
	 * 下架
	 */

	public void doDown() {
		String id = getPara("id");
		String downtime = DatetimeKit.getFormatDate("yyyy-MM-dd-hh-mm");
		if (StrKit.isBlank(id)) {
			renderFailed("参数id不能为空");
			return;
		} else {
			int i = service.doDown(id, downtime);
			if (i == 1) {
				renderSuccess(service.findById(Integer.valueOf(id)));
				return;
			} else {
				// 3.其他情况
				renderFailed("下架失败");
				return;
			}
		}
	}

	/**
	 * 上架
	 */
	public void doUp() {
		String id = getPara("id");
		String createDate = DatetimeKit.getFormatDate("yyyy-MM-dd-HH-mm-ss");
		if (StrKit.isBlank(id)) {
			renderFailed("参数id不能为空");
			return;
		} else {
			int i = service.doUp(id, createDate);
			if (i == 1) {
				renderSuccess(service.findById(Integer.valueOf(id)));
				return;
			} else {
				// 3.其他情况
				renderFailed("下架失败");
				return;
			}
		  
		}
	}

	/**
	 * 售罄
	 **/

	public void doClerk() {
		String id = getPara("id");
		// String createDate=DatetimeKit.getFormatDate("yyyy-MM-dd-HH-mm-ss");
		if (StrKit.isBlank(id)) {
			renderFailed("参数id不能为空");
			return;
		} else {
			int i = service.doclerk(id);
			if (i == 1) {
				renderSuccess(service.findById(Integer.valueOf(id)));
				return;
			} else {
				// 3.其他情况
				renderFailed("下架失败");
				return;
			}
		}
	}

	/**
	 * 删除商品
	 */
	public void delete() {
		String id = getPara("id");
		if (StrKit.isBlank(id)) {
			renderFailed("参数sellerId不能为空");
			return;
		} else {
			GoodsEge goods = service.findById(Integer.valueOf(id));
			if (service.delete(goods)) {
				renderSuccess();
				return;
			} else {
				// 3.其他情况
				renderFailed("删除失败");
				return;
			}
		}
	}

	/**
	 * 商品添加页面
	 */
	public void toAdd() {
		String LunBoNum = DatetimeKit.getFormatDate("yyyyMMddHHmmssSSS") + CommonKit.buildRandomNum(4);
		int userid = getCurrentUser().getInt("id");
		List<WxGoodsTitle> allTitle = service.findAllTitle();
		setAttr("allTitle", allTitle);
		List<Category> oneCategories = service.finOneCategory();
		setAttr("oneCategories", oneCategories);
		setAttr("LunBoNum", LunBoNum);
		setAttr("userid", userid);
		render("add.jsp");
	}
	/**
	 * 二级分类
	 */
	public void categoryonid(){
		String[] categoryonid = getParaValues("categoryonid");
		String str = java.lang.String.join("','", categoryonid);
		renderSuccess(service.finTwoCategory(str));
	}
	/**
	 * 三级分类
	 */
	public void categorytwid(){
		String[] categorytwid = getParaValues("categorytwid");
		String str = java.lang.String.join("','", categorytwid);
		renderSuccess(service.finThreeCategory(str));
	}
	/**
	 * 四级分类
	 */
	public void categorythid(){
		String[] categorythid = getParaValues("categorythid");
		String str = java.lang.String.join("','", categorythid);
		renderSuccess(service.finFourCategory(str));
	}
	/**
	 * 添加商品
	 */
	public void doAdd() {
		/* 商品基本信息 */
		// 商品图片
		UploadFile goodsthumb = getFile("goodsthumb");
		//客服二维码
		UploadFile Qrthumb = getFile("Qrthumb");
		// 商品名称
		String name = getPara("names");
		// 商品市场价格
		String sellPrice = getPara("sellPrice");
		// 所属类别：
		String categoryonid = getPara("categoryonid");
		String categorytwid = getPara("categorytwid");
		String categorythid = getPara("categorythid");
		String categoryfoid = getPara("categoryfoid");
		// 补充内容
		String content = getPara("bucong");
		// 文字简介
		String shortInfo = getPara("shortinfo");
		String beizhu = getPara("beizhu");
		/*String[] lableIds = getParaValues("sTitle"); //商品标签名称
		StringBuffer stringBuffer = new StringBuffer();
		if (lableIds != null && lableIds.length > 0) {
			for (int i = 0; i < lableIds.length; i++) {
				String lableId = lableIds[i];
				Integer lableid = getParaToInt(lableId);
				WxGoodsTitle wxGoodsTitle = service.findTitleById(lableid);
				String lable = wxGoodsTitle.get("title");
				stringBuffer.append(lableId+",");
			}
		}
		String lableId = stringBuffer.toString();*/
		// 标签ID
		String lableId = getPara("sTitle");
		// 轮播图片和详情图片
		String LunBoNum = getPara("LunBoNum");
		// 商品规格说明
		String[] KspecName = getParaValues("KspecName"); //商品规格名称
		if (StrKit.isBlank(categoryonid) || StrKit.isBlank(categorytwid)) {
			renderResult(2);
			return;
		} else if (StrKit.isBlank(LunBoNum)) {
			renderResult(7);
			return;
		}  else if (!StrKit.notBlank(KspecName)) {
			renderResult(6);
			return;
		} else if (goodsthumb == null) {
			renderResult(7);
			return;
		} else if (Qrthumb == null) {
			renderResult(9);
			return;
		}else {
			GoodsEge goods = new GoodsEge().set("name", name)
					.set("categoryonid", Integer.valueOf(categoryonid).intValue())
					.set("categorytwid", Integer.valueOf(categorytwid).intValue())
					.set("categorythid", Integer.valueOf(categorythid).intValue())
					.set("categoryfoid", Integer.valueOf(categoryfoid).intValue())
					.set("createDate", DatetimeKit.getFormatDate("yyyy-MM-dd-HH-mm-ss"))
					.set("content", content)
					.set("sellPrice", sellPrice)
					.set("shortInfo", shortInfo)
					.set("state", 3)
					.set("pstate", 1)
					.set("LunBoNum", LunBoNum)
					.set("beizhu", beizhu)
					.set("lableId", lableId);
			// 如果上传了图片，则上传至FTP，并记录图片文件名
			if (goodsthumb != null) {
				String thumbFileName;
				String dir = DirKit.getDir(DirKit.GOODS_BASE);
				try {
					thumbFileName = uploadToFtp(dir, goodsthumb);
				} catch (IOException e) {
					e.printStackTrace();
					renderResult(18);
					return;
				}
				goods.set("thumb", dir.concat(thumbFileName));
			}
			// 如果上传了客服二维码图片，则上传至FTP，并记录图片文件名
			if (Qrthumb != null) {
				String QrthumbFileName;
				String Qrthumbdir = DirKit.getDir(DirKit.GOODS_BASE);
				try {
					QrthumbFileName = uploadToFtp(Qrthumbdir, Qrthumb);
				} catch (IOException e) {
					e.printStackTrace();
					renderResult(9);
					return;
				}
				goods.set("Qrthumb", Qrthumbdir.concat(QrthumbFileName));
			}
			// 保存
			if (service.add(goods)) {
				// 商品规格保存需要获得关联商品ID*************************************************start
				//接收前端的值
				String[] KspecNum = getParaValues("KspecNum");//此规格商品的数量
				String[] KmarketPrice = getParaValues("KmarketPrice");  //分公司分公司价
				String[] Kstock = getParaValues("Kstock"); //库存数量
				//支付方式
				String[] Kmultipay = getParaValues("Kmultipay"); //支付方式单货币类型
				//单优惠支付类型
				String[] Koppoint = getParaValues("Koppoint"); //积分支付方式的类型
				String[] Kopdedu = getParaValues("Kopdedu"); //积分支付方式的类型
				String[] Kopcoupon = getParaValues("Kopcoupon"); //积分支付方式的类型
				//组合支付类型
				String[] Kmuchsellerprice = getParaValues("Kmuchsellerprice"); //积分支付方式的类型
				String[] Kmppoint = getParaValues("Kmppoint"); //积分支付方式的类型
				String[] Kmpdedu = getParaValues("Kmpdedu"); //积分支付方式的类型
				String[] Kmpcoupon = getParaValues("Kmpcoupon"); //积分支付方式的类
				//商品ID
				int goodsid = service.findidByName(name);
				if (KspecName != null && KspecName.length > 0) {
					for (int i = 0; i < KspecName.length; i++) {
						GoodsEgeSpec goodsSpec = new GoodsEgeSpec();
						//将前端的值转为后端参数封装对象，并保存
						String sKspecName = KspecName[i]; //商品规格名称
						String sKspecNum = KspecNum[i];  //此规格商品的数量
						String sKmarketPrice = KmarketPrice[i];  //分公司分公司价
						String sKstock = Kstock[i]; //库存数量
						String sKmultipay = Kmultipay[i]; //多支付类型
						String sKoppoint = Koppoint[i]; //单独优惠支付积分值
						String sKopdedu = Kopdedu[i]; //单独优惠支付抵扣券值	
						String sKopcoupon = Kopcoupon[i]; //单独优惠支付积教育分值
						String sKmuchsellerprice = Kmuchsellerprice[i]; //组合支付货币支付价格
						String sKmppoint = Kmppoint[i]; //组合支付积分值值
						String sKmpdedu = Kmpdedu[i]; //组合支付抵扣券值
						String sKmpcoupon = Kmpcoupon[i]; //组合支付优惠券
			
						goodsSpec.set("goodId", goodsid).set("specTitle", sKspecName)//商品规格名称
								.set("specNum", UtilNumber.IntegerValueOf(sKspecNum))//此规格商品的数量
								.set("marketPrice", sKmarketPrice)//分公司分公司价
								.set("stockNum", UtilNumber.IntegerValueOf(sKstock))//库存数量
								.set("createDate", DatetimeKit.getFormatDate("yyyy-MM-dd-HH-mm-ss"))//创建时间
								.set("multipay", UtilNumber.DoubleValueOf(sKmultipay))//多支付类型								
								.set("opPoint", UtilNumber.DoubleValueOf(sKoppoint).intValue())//积分支付方式 积分的
								.set("opDedu", UtilNumber.DoubleValueOf(sKopdedu).intValue())//积分支付方式 积分的
								.set("opCoupon", UtilNumber.DoubleValueOf(sKopcoupon).intValue())//积分支付方式 积分的
								.set("muchsellerPrice", UtilNumber.DoubleValueOf(sKmuchsellerprice))//组合支付货币支付价格
								.set("mpPoint", UtilNumber.DoubleValueOf(sKmppoint))//组合支付积分值
								.set("mpDedu", UtilNumber.DoubleValueOf(sKmpdedu).intValue())//组合支付抵扣券值
								.set("mpCoupon", UtilNumber.DoubleValueOf(sKmpcoupon).intValue())//组合支付优惠券
								.save();
					}
				} else {
					renderResult(14);
					return;
				}
			}
		}
		renderFailed();
	}
	/**
	 * 修改商品信息页面
	 */
	public void toEdit() {
		int id = getParaToInt(0, 0);
		int userid=getCurrentUser().getInt("id");
		List<WxGoodsTitle> allTitle = service.findAllTitle();
		setAttr("allTitle", allTitle);
		if (id != 0) {
			Record goods = service.findGoodDetailById(id);
			String gooditem = goods.getStr("goodItem");
			if (!StrKit.isBlank(gooditem)) {
				List<Record> goodItem = service.getGoodsItem(gooditem);
				if (goodItem.size() > 0) {
					setAttr("goodItem", goodItem);
				}
			}
				List<Record> goodSpecs = service.getGoodSpec(id);
				if (goodSpecs.size() > 0) {
					setAttr("goodSpec", goodSpecs);
				}
			String lableId = goods.get("lableId");
			int lableid = Integer.parseInt(lableId);
			setAttr("lableId", lableid);
			setAttr("goods", goods);
		}
		List<Category> oneCategories = service.finOneCategory();
		setAttr("oneCategories", oneCategories);
		List<Category> twoCategories = service.findTwoCategory();
		setAttr("twoCategories", twoCategories);
		List<Category> threeCategories = service.findThreeCategory();
		setAttr("threeCategories", threeCategories);
		List<Category> fourCategories = service.findFourCategory();
		setAttr("fourCategories", fourCategories);
		setAttr("userid", userid);
		render("edit.jsp");
	}
	/**
	 * 修改商品信息并保存
	 */
	public void doEdit() {
		/*
		 * 商品基本信息 由于不是同一张表，所以修改的操作是先把原始的数据删除掉 在进行重新的写入。
		 */
		// 商品图片
		UploadFile goodsthumb = getFile("goodsthumb");
		// 客服二维码
		UploadFile Qrthumb = getFile("Qrthumb");
		// 商品名称
		String name = getPara("names");
		// 商品市场价格
		String sellPrice = getPara("sellPrice");
		// 所属类别：
		String categoryonid = getPara("categoryonid");
		String categorytwid = getPara("categorytwid");
		String categorythid = getPara("categorythid");
		String categoryfoid = getPara("categoryfoid");
		System.out.println(categorytwid);
		int id = getParaToInt("id");
		/*String[] lableIds = getParaValues("sTitle"); //商品标签名称
		StringBuffer stringBuffer = new StringBuffer();
		if (lableIds != null && lableIds.length > 0) {
			for (int i = 0; i < lableIds.length; i++) {
				String lableId = lableIds[i];
				Integer lableid = getParaToInt(lableId);
				WxGoodsTitle wxGoodsTitle = service.findTitleById(lableid);
				String lable = wxGoodsTitle.get("title");
				stringBuffer.append(lableId+",");
			}
		}
		String lableId = stringBuffer.toString();*/
		// 标签ID
		String lableId = getPara("sTitle");
		Record good = service.findGoodDetailById(id);
		String gooditem = good.getStr("goodItem");
		service.deteleItem(gooditem);
		// 轮播图
		String LunBoNum = getPara("LunBoNum");
		// 补充内容
		String content = getPara("bucong");
		// 备注
		String beizhu = getPara("beizhu");		
		/* 商品详情 */
		String[] KspecName = getParaValues("KspecName"); //商品规格名称
		// 文字简介
		String shortInfo = getPara("shortinfo");
		String thumbOld = getPara("thumbOld");
		String QrthumbOld = getPara("QrthumbOld");
		if (StrKit.isBlank(name)) {
			renderResult(1);
			return;
		} else if (StrKit.isBlank(categoryonid) || StrKit.isBlank(categorytwid)) {
			renderResult(2);
			return;
		} else if (!StrKit.notBlank(KspecName)) {
			renderResult(6);
			return;
		}else if ( Qrthumb == null&&QrthumbOld== null) {
			renderResult(9);
			return;
		}else if ( goodsthumb == null&&thumbOld== null) {
			renderResult(7);
			return;
		}  else {
			// GoodsEge goods=new GoodsEge()
			GoodsEge goods = service.findByIdGoods(id).set("name", name)
					.set("categoryonid", Integer.valueOf(categoryonid).intValue())
					.set("categorytwid", Integer.valueOf(categorytwid).intValue())
					.set("categorythid", Integer.valueOf(categorythid).intValue())
					.set("categoryfoid", Integer.valueOf(categoryfoid).intValue())
					.set("createDate", DatetimeKit.getFormatDate("yyyy-MM-dd-HH-mm-ss"))
					.set("content", content)
					.set("sellPrice", sellPrice)
					.set("shortInfo", shortInfo)
					.set("state", 3)
					.set("pstate", 1)
					.set("LunBoNum", LunBoNum)
					.set("beizhu", beizhu)
					.set("lableId", lableId)
					;
			// 如果上传了图片，则上传至FTP，并记录图片文件名
			if (goodsthumb != null) {
				String thumbFileName;
				String dir = DirKit.getDir(DirKit.GOODS_BASE);
				try {
					thumbFileName = uploadToFtp(dir, goodsthumb);
					deleteFromFtp(thumbOld);
				} catch (IOException e) {
					e.printStackTrace();
					renderResult(18);
					return;
				}
				goods.set("thumb", dir.concat(thumbFileName));
			}
			// 如果上传了客服二维码，则上传至FTP，并记录图片文件名
			if (Qrthumb != null) {
				String QrthumbFileName;
				String Qrthumbdir = DirKit.getDir(DirKit.GOODS_BASE);
				try {
					QrthumbFileName = uploadToFtp(Qrthumbdir, Qrthumb);
					deleteFromFtp(QrthumbOld);
				} catch (IOException e) {
					e.printStackTrace();
					renderResult(6);
					return;
				}
				goods.set("Qrthumb", Qrthumbdir.concat(QrthumbFileName));
			}
			// 保存
			if (service.updategood(goods)) {
				//delete 删除原来此商品id下所有规格，重新添加
				service.deteleSpec(id);
				// 商品规格保存需要获得关联商品ID*************************************************start
				//接收前端的值
				String[] KspecNum = getParaValues("KspecNum");  //此规格商品的数量
				String[] KmarketPrice = getParaValues("KmarketPrice");  //分公司分公司价
				String[] Kstock = getParaValues("Kstock"); //库存数量
				//多支付方式
				String[] Kmultipay = getParaValues("Kmultipay"); //支付方式单货币类型
				//单优惠支付类型
				String[] Koppoint = getParaValues("Koppoint"); //积分支付方式的类型
				String[] Kopdedu = getParaValues("Kopdedu"); //积分支付方式的类型
				String[] Kopcoupon = getParaValues("Kopcoupon"); //积分支付方式的类型
				//组合支付类型
				String[] Kmuchsellerprice = getParaValues("Kmuchsellerprice"); //积分支付方式的类型
				String[] Kmppoint = getParaValues("Kmppoint"); //积分支付方式的类型
				String[] Kmpdedu = getParaValues("Kmpdedu"); //积分支付方式的类型
				String[] Kmpcoupon = getParaValues("Kmpcoupon"); //积分支付方式的类

				//商品ID
				int goodsid = service.findidByName(name);
				if (KspecName != null && KspecName.length > 0) {
					for (int i = 0; i < KspecName.length; i++) {
						GoodsEgeSpec goodsSpec = new GoodsEgeSpec();
						//将前端的值转为后端参数封装对象，并保存
						String sKspecName = KspecName[i]; //商品规格名称
						String sKspecNum = KspecNum[i];  //此规格商品的数量
						String sKmarketPrice = KmarketPrice[i];  //分公司分公司价
						String sKstock = Kstock[i]; //库存数量
						
						String sKmultipay = Kmultipay[i]; //支付类型						
						String sKoppoint = Koppoint[i]; //单独优惠支付积分值
						String sKopdedu = Kopdedu[i]; //单独优惠支付抵扣券值	
						String sKopcoupon = Kopcoupon[i]; //单独优惠支付积教育分值
						String sKmuchsellerprice = Kmuchsellerprice[i]; //组合支付货币支付价格
						String sKmppoint = Kmppoint[i]; //组合支付积分值值
						String sKmpdedu = Kmpdedu[i]; //组合支付抵扣券值
						String sKmpcoupon = Kmpcoupon[i]; //组合支付优惠券
			
						goodsSpec.set("goodId", goodsid).set("specTitle", sKspecName)//商品规格名称
								.set("specNum", UtilNumber.IntegerValueOf(sKspecNum))//此规格商品的数量
								.set("marketPrice", sKmarketPrice)//分公司分公司价
								.set("stockNum", UtilNumber.IntegerValueOf(sKstock))//库存数量
								.set("createDate", DatetimeKit.getFormatDate("yyyy-MM-dd-HH-mm-ss"))//创建时间
								
								.set("multipay", UtilNumber.DoubleValueOf(sKmultipay))//多支付类型								
								.set("opPoint", UtilNumber.DoubleValueOf(sKoppoint).intValue())//积分支付方式 积分的类型
								.set("opDedu", UtilNumber.DoubleValueOf(sKopdedu).intValue())//积分支付方式 积分的类型
								.set("opCoupon", UtilNumber.DoubleValueOf(sKopcoupon).intValue())//积分支付方式 积分的类型
								.set("muchsellerPrice", UtilNumber.DoubleValueOf(sKmuchsellerprice))//组合支付货币支付价格
								.set("mpPoint", UtilNumber.DoubleValueOf(sKmppoint))//组合支付积分值值
								.set("mpDedu", UtilNumber.DoubleValueOf(sKmpdedu).intValue())//组合支付抵扣券值
								.set("mpCoupon", UtilNumber.DoubleValueOf(sKmpcoupon).intValue())//组合支付优惠券
								.save();
					}
				}
				//添加成功更新返回商品ID
				renderSuccess(service.findById(Integer.valueOf(id)));
				return;	
			}
		}
		renderSuccess();
	}
	
	
	

	/**
	 * 分公司产品删除指定id的商品记录<br/>
	 * 不删除图片
	 */
	public void doDelete() {
		int id = getParaToInt(0, 0);
		if (id != 0 && GoodsEge.me().deleteById(id)) {
			logger.info("删除商品【" + id + "】");
			renderSuccess();
			return;
		}
		renderFailed();

	}

	/**
	 * 分公司产品修改详细内容页面
	 */
	public void toDetailEdit() {
		int id = getParaToInt(0, 0);
		if (id != 0) {
			setAttr("object", service.findById(id));
		}
		render("editorDetail.jsp");
	}

	/**
	 * 分公司产品详情页面富文本编辑内容修改并保存数据
	 */
	/*
	 * public void doDetailEdit(){ String id = getPara("id"); String describe =
	 * getPara("describe"); if(StrKit.isBlank(id)){ renderResult(1); return; }
	 * GoodsBase goods = new GoodsBase() .set("id",
	 * Integer.valueOf(id).intValue()) .set("describe", describe);
	 * if(service.updategood(goods)){ renderSuccess(); return; } renderFailed();
	 * }
	 */

	/**
	 * 图文详情
	 */
	public void imgdetail() {
		List<UploadFile> file = getFiles();
		logger.info(""+file.size());
		if (file.isEmpty()) {
			renderFailed("轮播图片不能为空！");
			return;
		}else if (file.size() > 20) {
			renderFailed("轮播图一次最多上传20张！");
			return;
		}
		String LunBoNum = getPara("lunbonum");
		// 保存
		// 如果上传了图片，则上传至FTP，并记录图片文件名
		List<GoodsBaseImages> fileList = new ArrayList<>();
		
		boolean isSuccess = false;
		for(int i=0; i<file.size(); i++) {
			UploadFile thumb = file.get(i);
			if (thumb != null) {
				String thumbFileName;
				String dir = DirKit.getDir(DirKit.GOODS_IMAGES);
				try {
					thumbFileName = uploadToFtp(dir, thumb);
				} catch (IOException e) {
					e.printStackTrace();
					renderResult(2);
					return;
				}
				GoodsBaseImages image = new GoodsBaseImages().set("LunBoNum", LunBoNum).set("thumb",
						dir.concat(thumbFileName));
				if (service.addImage(image)) {
					fileList.add(image);
					isSuccess = true;
				}else {
					isSuccess = false;
				}
			} else {
				renderResult(1);
				return;
			}
		}
		if (isSuccess) {
			renderResult(0,fileList);
		} else {
			renderResult(1);
		}
		
	}
	/**
	 * 分公司产品文本编辑中图片上传
	 */
	public void uploadimg() {
		UploadFile thumb = getFile();
		Map<String, Object> map = new HashMap<String, Object>();
		if (thumb != null) {
			String thumbFileName;
			String dir = DirKit.getDir(DirKit.GOODS_DETAIL);
			try {
				thumbFileName = uploadToFtp(dir, thumb);
				map.put("error", 0);
				map.put("url", PropKit.get("constants.ftppath").concat(dir).concat(thumbFileName));
				renderJson(map);
				return;
			} catch (IOException e) {
				e.printStackTrace();
				logger.debug("上传图片失败");
				map.put("error", 1);
				map.put("message", "图片上传失败");
				renderJson(map);
			}
		} else {
			map.put("error", 1);
			map.put("message", "图片为空");
			renderJson(map);
		}
	}
	/**
	 * 模板绑定页面
	 */
	public void Tem() {
		int goodsid = getParaToInt(0, 0);
		List<GoodsSaleItem> allItems = service.findAllItems(goodsid);
		setAttr("allItems", allItems);
		setAttr("goodsid", goodsid);
		render("template.jsp");
		
	}
	/**
	 * 扩展信息
	 */
	public void template() {
		//商品的id
		int goodsid = getParaToInt("goodsid", 0);
		//扩展属性集合
		String[] siname = getParaValues("iname");
		String[] sidetail = getParaValues("idetail");
		if (service.findAllItems(goodsid)!=null) {
			service.deleteSaleItem(goodsid);
			if (siname != null && siname.length > 0) {
				for (int i = 0; i < siname.length; i++) {
					//扩展属性
					String iname = siname[i];
					String idetail = sidetail[i];
					GoodsSaleItem goodsSaleItem = new GoodsSaleItem();
							goodsSaleItem.set("iname", iname)//商品规格名称
							.set("idetail", idetail)
							.set("goodsid", goodsid)
							.save()
							;
				}
			}
		}else {
			if (siname != null && siname.length > 0) {
				for (int i = 0; i < siname.length; i++) {
					//扩展属性
					String iname = siname[i];
					String idetail = sidetail[i];
					GoodsSaleItem goodsSaleItem = new GoodsSaleItem();
							goodsSaleItem.set("iname", iname)//商品规格名称
							.set("idetail", idetail)
							.set("goodsid", goodsid)
							.save()
							;
				}
			}
		}
		
		renderSuccess();
	}
	/**
	 * 图片列表
	 */
	public void imageIndex() {
		setAttr("LunBoNum", getPara(0));
		render("imageList.jsp");
	}

	/**
	 * 图片分页
	 */
	public void imagePage() {
		renderSuccess(service.findAllImages(getPara(0)));
	}

	/**
	 * 图片排序
	 */
	public void doImageSort() {
		Map<String, String[]> params = getParaMap();
		if (params != null && params.size() != 0 && params.containsKey("sortKey")) {
			String sortKey = params.get("sortKey")[0];
			Map<String, String> sortMap = new HashMap<String, String>();
			for (String key : params.keySet()) {
				if (!key.equals("sortKey")) {
					String id = key.replace(sortKey, "");
					String no = params.get(key)[0];
					if (StrKit.isBlank(no) || no.length() > 3) {
						no = "0";
					}
					sortMap.put(id, no);
				}
			}
			service.sortImages(sortMap);
			renderSuccess();
			return;
		}
		renderFailed();
	}

	/**
	 * 添加图片
	 */
	public void toImageAdd() {
		setAttr("LunBoNum", getPara(0));
		render("imageAdd.jsp");
	}

	/**
	 * 添加图片方法
	 * 
	 * @return -1：异常，0：成功，1：图片为空，2：图片上传失败
	 */
	public void doImageAdd() {
		List<UploadFile> file = getFiles();
		logger.info(""+file.size());
		if (file.isEmpty()) {
			renderFailed("轮播图片不能为空！");
			return;
		}else if (file.size() > 20) {
			renderFailed("轮播图一次最多上传20张！");
			return;
		}
		String LunBoNum = getPara("lunbonum");
		// 保存
		// 如果上传了图片，则上传至FTP，并记录图片文件名
		List<GoodsBaseImages> fileList = new ArrayList<>();
		
		boolean isSuccess = false;
		for(int i=0; i<file.size(); i++) {
			UploadFile thumb = file.get(i);
			if (thumb != null) {
				String thumbFileName;
				String dir = DirKit.getDir(DirKit.GOODS_IMAGES);
				try {
					thumbFileName = uploadToFtp(dir, thumb);
				} catch (IOException e) {
					e.printStackTrace();
					renderResult(2);
					return;
				}
				GoodsBaseImages image = new GoodsBaseImages().set("LunBoNum", LunBoNum).set("thumb",
						dir.concat(thumbFileName));
				if (service.addImage(image)) {
					fileList.add(image);
					isSuccess = true;
				}else {
					isSuccess = false;
				}
			} else {
				renderResult(1);
				return;
			}
		}
		if (isSuccess) {
			renderResult(0,fileList);
		} else {
			renderResult(1);
		}
		
	}

	/**
	 * 设置图片为商品LOGO
	 * 
	 * @return -1：异常，0：成功
	 */
	public void doSetImageLogo() {
		int id = getParaToInt(0, 0);
		int goodsid = getParaToInt("goodsid");
		if (id != 0 && service.setImageLogo(goodsid, id)) {
			renderSuccess();
			return;
		}
		renderFailed();
	}

	/**
	 * 删除图片
	 * 
	 * @return -1：删除失败，0：删除成功
	 */
	public void doImageDelete() {
		int id = getParaToInt(0, 0);
		if (id != 0 && service.delImage(id)) {
			renderSuccess();
			return;
		}
		renderFailed();
	}

	/**
	 * 添加详情图片列表
	 */
	public void imageDetailIndex() {
		setAttr("LunBoNum", getPara(0));
		render("detailImgList.jsp");
	}

	/**
	 * 详情图片分页
	 */
	public void imageDetailPage() {

		renderSuccess(service.findDetailImages(getPara(0)));
	}

	/**
	 * 详情图片排序
	 */
	public void doDetailSort() {
		Map<String, String[]> params = getParaMap();
		if (params != null && params.size() != 0 && params.containsKey("sortKey")) {
			String sortKey = params.get("sortKey")[0];
			Map<String, String> sortMap = new HashMap<String, String>();
			for (String key : params.keySet()) {
				if (!key.equals("sortKey")) {
					String id = key.replace(sortKey, "");
					String no = params.get(key)[0];
					if (StrKit.isBlank(no) || no.length() > 3) {
						no = "0";
					}
					sortMap.put(id, no);
				}
			}
			service.sortDetailImages(sortMap);
			renderSuccess();
			return;
		}
		renderFailed();
	}

	/**
	 * 添加详情图片页面
	 */
	public void toImageDetailAdd() {
		setAttr("LunBoNum", getPara(0));
		render("ImgDetailAdd.jsp");
	}
	
	/**
	 * 添加详情图片方法
	 * 
	 * @return -1：异常，0：成功，1：图片为空，2：图片上传失败
	 */
	public void doImageDetailAdd() {
		List<UploadFile> file = getFiles();
		logger.info(""+file.size());
		if (file.isEmpty()) {
			renderFailed("详情图片不能为空！");
			return;
		}else if (file.size() > 20) {
			renderFailed("详情图一次最多上传20张！");
			return;
		}
		// 保存
		String LunBoNum = getPara("LunBoNum");
		// 如果上传了图片，则上传至FTP，并记录图片文件名
		List<DetailsImg> fileList = new ArrayList<>();
		boolean isSuccess = false;
		for(int i=0; i<file.size(); i++) {
			UploadFile thumb = file.get(i);
			if (thumb != null) {
				String thumbFileName;
				String dir = DirKit.getDir(DirKit.GOODS_IMAGES);
				try {
					thumbFileName = uploadToFtp(dir, thumb);
				} catch (IOException e) {
					e.printStackTrace();
					renderResult(2);
					return;
				}
				DetailsImg image = new DetailsImg().set("LunBoNum", LunBoNum).set("thumb", dir.concat(thumbFileName));
			
				if (service.addDetailImage(image)) {
					fileList.add(image);
					isSuccess = true;
				}else {
					isSuccess = false;
				}
				
			} else {
				renderResult(1);
				return;
			}
		}
		if (isSuccess) {
			renderResult(0,fileList);
		} else {
			renderResult(1);
		}

	}

	/**
	 * 删除添加详情图片
	 * 
	 * @return -1：删除失败，0：删除成功
	 */
	public void doDetailImageDelete() {
		int id = getParaToInt(0, 0);
		if (id != 0 && service.delDetailImage(id)) {
			renderSuccess();
			return;
		}
		renderFailed();
	}

	/**
	 * 驳回原因
	 */
	public void toBoHui() {
		int id = getParaToInt("id");
		if (id > 0) {
			GoodsEge goodstore = service.findByIdGoods(id);
			String reason = goodstore.getStr("reason");
			setAttr("reason", reason);
			render("bohui.jsp");
			;
		} else {
			renderFailed("查看失败");
			return;
		}
	}

	

}
